package com.yunxi.order.feign;

import com.yunxi.order.feign.fallback.ProductFeignClientFallback;
import com.yunxi.product.bean.Product;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;

/**
 * 远程调用商品服务的 API
 *
 * @author: lidy
 * @date: 2025-01-18 11:45
 */
@FeignClient(value = "service-product", fallback = ProductFeignClientFallback.class)    // 开启远程调用
public interface ProductFeignClient {

    /*
    mvc 注解的使用
    1. 标注在 Controller 上，接收一个这样的请求
    2. 标注在 FeignClient 上，发送一个这样的请求
     */

    /**
     * 根据商品 ID 查询商品信息
     *
     * @param productId 商品 ID
     * @return 商品信息
     */
    @GetMapping("/product/{id}")
    Product getProductById(@PathVariable("id") Long productId);

}
